Option Strict On
Option Explicit On

Imports System
Imports KADGen.MetadataWrapper
Imports System.Collections.Generic
Imports KADGen.Utility2005

Namespace KADGen.CodeGenerationSupport
   Public Class MorphMetadata2006Args
      Inherits RunArgs

      Private mSections As MorphSections
      Private mDataStructureFileName As String
      Private mOrmMapFileName As String
      Private mSPOrder As KADGen.CodeGenerationSupport.Order
      Private mTableOrder As KADGen.CodeGenerationSupport.Order
      Private mViewOrder As KADGen.CodeGenerationSupport.Order
      Private museSchemaInWhereClause As Boolean
      Private mUnbackedColumnBehavior As UnbackedColumnBehavior

      Public Sub New( _
               ByVal sections As MorphSections, _
               ByVal spOrder As KADGen.CodeGenerationSupport.Order, _
               ByVal tableOrder As KADGen.CodeGenerationSupport.Order, _
               ByVal viewOrder As KADGen.CodeGenerationSupport.Order, _
               ByVal dataStructureFileName As String, _
               ByVal ormMapFileName As String, _
               ByVal useSchemaInWhereClause As Boolean, _
               ByVal unbackedColumnBehavior As UnbackedColumnBehavior)
         Me.mSections = sections
         Me.mDataStructureFileName = dataStructureFileName
         Me.mOrmMapFileName = ormMapFileName
         Me.mSPOrder = spOrder
         Me.mTableOrder = tableOrder
         Me.mViewOrder = viewOrder
         Me.museSchemaInWhereClause = useSchemaInWhereClause
         Me.mUnbackedColumnBehavior = unbackedColumnBehavior
      End Sub

      Public Property Sections() As MorphSections
         Get
            Return Me.mSections
         End Get
         Set(ByVal value As MorphSections)
            Me.mSections = value
         End Set
      End Property

      Public Property SPOrder() As KADGen.CodeGenerationSupport.Order
         Get
            Return Me.mSPOrder
         End Get
         Set(ByVal value As KADGen.CodeGenerationSupport.Order)
            Me.mSPOrder = value
         End Set
      End Property

      Public Property TableOrder() As KADGen.CodeGenerationSupport.Order
         Get
            Return Me.mTableOrder
         End Get
         Set(ByVal value As KADGen.CodeGenerationSupport.Order)
            Me.mTableOrder = value
         End Set
      End Property

      Public Property ViewOrder() As KADGen.CodeGenerationSupport.Order
         Get
            Return Me.mViewOrder
         End Get
         Set(ByVal value As KADGen.CodeGenerationSupport.Order)
            Me.mViewOrder = value
         End Set
      End Property

      Public Property DataStructureFileName() As String
         Get
            Return Me.mDataStructureFileName
         End Get
         Set(ByVal value As String)
            Me.mDataStructureFileName = value
         End Set
      End Property

      Public Property OrmMapFileName() As String
         Get
            Return Me.mOrmMapFileName
         End Get
         Set(ByVal value As String)
            Me.mOrmMapFileName = value
         End Set
      End Property

      Public Property UseSchemaInWhereClause() As Boolean
         Get
            Return Me.museSchemaInWhereClause
         End Get
         Set(ByVal value As Boolean)
            Me.museSchemaInWhereClause = value
         End Set
      End Property

      Public Property UnbackedColumnBehavior() As UnbackedColumnBehavior
         Get
            Return Me.mUnbackedColumnBehavior
         End Get
         Set(ByVal value As UnbackedColumnBehavior)
            Me.mUnbackedColumnBehavior = value
         End Set
      End Property
   End Class
End Namespace